Don't assert on misplaced signal elements
authorMatthias Clasen <matthiasc@src.gnome.org>
Sat, 10 Nov 2007 04:15:44 +0000 (04:15 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Sat, 10 Nov 2007 04:15:44 +0000 (04:15 +0000)
svn path=/trunk/; revision=18977

ChangeLog
gtk/gtkbuilderparser.c

index 425659d63030a48638bb4a679f43bf1f6fdf6274..8384acf37df817f7c7a21bf1c4ae7f3db2a3c09e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,7 @@
 2007-11-09  Matthias Clasen  <mclasen@redhat.com>
+       
+       * gtk/gtkbuilderparser.c (parse_signal): Handle misplaced
+       signal elements without asserting.
 
        * gtk/gtkbuilderparser.c (parse_property): Handle misplaced
        property elements without asserting.
index b06df7951a48fd6bda22b8d14a14b66d13753789..56acdc26133c3ee7889ba0ee3e133c5120a091b2 100644 (file)
@@ -297,7 +297,6 @@ parse_object (ParserData   *data,
   object_info->id = object_id;
   object_info->constructor = constructor;
   state_push (data, object_info);
-  g_assert (state_peek (data) != NULL);
   object_info->tag.name = element_name;
 
   if (child_info)
@@ -341,7 +340,6 @@ parse_child (ParserData   *data,
   
   child_info = g_slice_new0 (ChildInfo);
   state_push (data, child_info);
-  g_assert (state_peek (data) != NULL);
   child_info->tag.name = element_name;
   for (i = 0; names[i]; i++)
     {
@@ -450,7 +448,11 @@ parse_signal (ParserData   *data,
   gboolean swapped_set = FALSE;
   int i;
 
-  g_assert (data->stack != NULL);
+  if (data->stack == NULL)
+    {
+      error_invalid_tag (data, "signal", NULL, error);
+      return;
+    }
 
   for (i = 0; names[i] != NULL; i++)
     {